
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import lintulaskenta.validointi.validointiKirjasto;
import lintulaskenta.validointi.TietokannanKenttienValidointi;

public class AjaxValidointiServlet extends HttpServlet {

    TietokannanKenttienValidointi validaattori = null;

    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        try {
            validaattori = new TietokannanKenttienValidointi();
        } catch (IOException e) {
            //EHKÄ VIRHEILMO SKRIPTILLE?
        }
    }

    @Override
    public void destroy() {
        //validaattori = null;
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        String validoitavaArvoTemp = request.getParameter("validoitavaArvo");
        String muuttujanArvo = "";


        char erotin = '#';
        int erotinInd = 0;
        StringBuffer muuttujanTyyppi = new StringBuffer();

        for (int i = 0; i < validoitavaArvoTemp.length(); i++) {
            if (validoitavaArvoTemp.charAt(i) == erotin) {
                erotinInd = i;
                break;
            } else {
                muuttujanTyyppi.append(validoitavaArvoTemp.charAt(i));
            }
        }
        muuttujanArvo = validoitavaArvoTemp.substring(erotinInd + 1, validoitavaArvoTemp.length());



        PrintWriter out = response.getWriter();
        //validoitavaArvoTemp = request.getParameter("validoitavaArvo");


        if (muuttujanArvo.length() > 0) {  //Muuttuja ei null
            //TODO: try-catch

            if (muuttujanTyyppi.toString().equals("kunta")) {

                if (validaattori.tarkistaKunnanLyhenne(muuttujanArvo.toUpperCase()).equals("true")) {
                    out.println("1"); //Palautetaan ajaxille arvo 1 eli true
                } else {
                    out.println(validaattori.tarkistaKunnanLyhenne(muuttujanArvo.toUpperCase()));
                }
            }

            if (muuttujanTyyppi.toString().equals("lahempiPaikka")) {

                if (validaattori.tarkistaLahempiKunta(muuttujanArvo.toUpperCase()).equals("true")) {
                    out.println("1"); //Palautetaan ajaxille arvo 1 eli true
                } else {
                    out.println(validaattori.tarkistaLahempiKunta(muuttujanArvo.toUpperCase()));
                }
            }

            if (muuttujanTyyppi.toString().equals("lintulaji")) {

                if (validaattori.tarkistaLintulajinLyhenne(muuttujanArvo.toUpperCase()).equals("true")) {
                    out.println("1"); //Palautetaan ajaxille arvo 1 eli true
                } else {
                    out.println(validaattori.tarkistaLintulajinLyhenne(muuttujanArvo.toUpperCase()));
                }
            }

            if (muuttujanTyyppi.toString().equals("parvenKoko")) {

                if (validaattori.tarkistaParvenKoko(muuttujanArvo.toUpperCase()).equals("true")) {
                    out.println("1"); //Palautetaan ajaxille arvo 1 eli true
                } else {
                    out.println(validaattori.tarkistaParvenKoko(muuttujanArvo.toUpperCase()));
                }
            }

        } else {
            //out.println("Validoitava arvo puuttuu");
        }
    }
}